package org.example.myleet.p470;

import java.util.HashMap;
import java.util.Map;

public class Solution extends SolBase {
    //这是由两个数组合得到key的map，为什么用两个数，是因为两个7可以产生49种可能，实际我们用其中的40个来映射到随机生成的10上面
    private static Map<Integer, Integer> map;
    static {
        map = new HashMap<>(49);
        map.put(11, 1);
        map.put(12, 1);
        map.put(13, 1);
        map.put(14, 1);
        map.put(15, 2);
        map.put(16, 2);
        map.put(17, 2);
        map.put(21, 2);
        map.put(22, 3);
        map.put(23, 3);
        map.put(24, 3);
        map.put(25, 3);
        map.put(26, 4);
        map.put(27, 4);
        map.put(31, 4);
        map.put(32, 4);
        map.put(33, 5);
        map.put(34, 5);
        map.put(35, 5);
        map.put(36, 5);
        map.put(37, 6);
        map.put(41, 6);
        map.put(42, 6);
        map.put(43, 6);
        map.put(44, 7);
        map.put(45, 7);
        map.put(46, 7);
        map.put(47, 7);
        map.put(51, 8);
        map.put(52, 8);
        map.put(53, 8);
        map.put(54, 8);
        map.put(55, 9);
        map.put(56, 9);
        map.put(57, 9);
        map.put(61, 9);
        map.put(62, 10);
        map.put(63, 10);
        map.put(64, 10);
        map.put(65, 10);
    }

    public int rand10() {
        int rand;
        do {
            //当rand落在map的key范围内才算有效
            rand = generateCombination();
        } while (!map.containsKey(rand));
        return map.get(rand);
    }

    private int generateCombination() {
        int rand = rand7();
        return rand * 10 + rand7();
    }
}
